____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Sistema client/server
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
In mwcqinformatica il termine mwcgsistema client-server (mwcwlett. "cliente-servente") indica un'mwdaarchitettura di rete nella quale genericamente un mwdqcomputer mwdgmwdwclient o mweaterminale si mweqconnette ad un mwegmwewserver per la fruizione di un certo servizio, quale ad esempio la condivisione di una certa mwfarisorsa mwfqhardware/mwfgsoftware con altri client, appoggiandosi alla sottostante architettura mwfwprotocollare.
PiΓΉ semplicemente, i sistemi mwgqclient/server sono un'evoluzione dei sistemi basati sulla condivisione semplice delle mwggrisorse: la presenza di un mwgwmwhaserver permette ad un certo numero di mwhqclient di condividerne le risorse, lasciando che sia il mwhgserver a gestire gli accessi alle risorse per evitare conflitti di utilizzazione tipici dei primi mwhwsistemi informatici.cite-ref-1[1]cite-ref-2[2] Le mwkareti locali aziendali (LAN), la rete mwkqInternet, i sistemi informatici e i mwkgsistemi operativi sono organizzati sotto forma di una tipica architettura client-server per la fruizione dei rispettivi servizi.
Contents
β’ Descrizione
β’ Client
β’ Server
β’ Collegamento
β’ Esempi
β’ Implementazioni
β’ Note
β’ Voci correlate
β’ Altri progetti
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Descrizione
Client
Il mwmasoftware mwmqclient in genere Γ¨ di limitata complessitΓ , limitandosi normalmente ad operare come interfaccia verso il mwmgserver. In generale nel campo informatico il termine mwmwclient indica una componente che accede ai servizi o alle risorse di un'altra componente, detta mwnaserver. In questo contesto si puΓ² quindi parlare di mwnqclient riferendosi all'mwnghardware o al mwnwsoftware.
Un computer collegato ad un mwoqserver tramite mwogrete geografica o mwowlocale, ed al quale richiede uno o piΓΉ servizi, utilizzando uno o piΓΉ mwpaprotocolli di rete Γ¨ un esempio di mwpqclient hardware. Un programma di mwpgposta elettronica Γ¨ un esempio di mwpwclient software. Sono sempre di piΓΉ i software, come il mwqaweb, l'mwqqe-mail, i mwqgdatabase, che sono divisi in una parte mwqwclient (residente ed in esecuzione sul mwrapc mwrqclient) e una parte mwrgserver (residente ed in esecuzione sul mwrwserver).cite-ref-3[3]
Il termine mwtqclient indica anche il software usato sul computer mwtgclient per accedere alle funzionalitΓ offerte dal mwtwserver. Ad esempio, nel web il software mwuaclient Γ¨ il mwuqmwugweb browser, e parla con un mwuwserver web attraverso il protocollo mwvaHTTP; per l'e-mail il mwvqclient Γ¨ detto in gergo mwvgmail user agent o mwvwMUA (ad esempio, mwwaOutlook, mwwqMozilla Thunderbird, mwwgEudora, ...), e parla con il mwwwserver (mwxaMail Transfer Agent o mwxqMTA) attraverso il protocollo mwxgSMTP e mwxwPOP o mwyaIMAP; il mwyqclient per la consultazione o la modifica del database (spesso costituito da mwyglibrerie software utilizzate da un'mwywapplicazione) parla con il mwzaDBMS, che gestisce il database e risponde alle interrogazioni del mwzqclient.
Server
Il software mwaqserver, oltre alla gestione logica del sistema, deve implementare tutte le tecniche di gestione degli accessi, allocazione e rilascio delle risorse, condivisione e mwagsicurezza dei dati o delle risorse.
Ad esempio un mwbaserver di posta elettronica Γ¨ paragonabile ad un qualunque ufficio postale. Gli utilizzatori per accedere via mwbqclient alla loro cassetta di posta elettronica devono essere stati autorizzati. In modo analogo un utente deve possedere la chiave della cassetta situata presso un ufficio postale dalla quale vuole prelevare la corrispondenza.
Architettura multitier
Quando un mwdqcomputer client si connette direttamente ad un sistema di mwdgdatabase o a una mwdwmweaserver application standard, questa viene chiamata mweq2-tier architecture (architettura a 2 livelli).
Recentemente, Γ¨ piΓΉ usuale per mwewcomputer mwfamwfqclient, chiamati mwfgmwfwthin client che non incorporano mwgamwgqbusiness logic, ma solo elementi di interfaccia, connettersi a una mwggmwgwserver application che implementa una mwhabusiness logic nella quale transitivamente (ossia successivamente) comunica con il database del mwhqserver, il quale memorizza i dati utilizzati dall'applicazione. Tale architettura Γ¨ chiamata mwhg3-tier architecture (architettura a 3 livelli).
In generale architetture ad mwian livelli possono impiegare un certo numero di servizi distinti, comprese relazioni transitive tra mwiqapplication server che implementano differenti funzioni di mwigbusiness logic, ognuna delle quali puΓ² impiegare o meno un sistema di database condiviso o distinto.
Collegamento
I mwjgclient ed il mwjwserver sono in collegamento tramite un mwkaprotocollo di comunicazione attraverso una mwkqrete di comunicazione. Il protocollo puΓ² essere in chiaro o in certi casi mwkgcrittografato.
Nell'ambito delle mwlatelecomunicazioni, due o piΓΉ macchine o mwlqhost (mwlgcomputer, mwlwtelefono, mwmastampante, ecc.) possono comunicare tra loro rispettando norme che sono dette protocolli di rete. L'aderenza ai protocolli garantisce che due macchine possano comunicare correttamente, anche se sono state realizzate indipendentemente.
Servizio con e senza connessione
Quando un mwmwclient e un mwnaserver iniziano a comunicare si possono scambiare mwnqpacchetti di controllo prima di spedire i dati effettivi/reali (mwngcomunicazione orientata alla connessione).
Queste procedure, dette di mwoahandshaking, preparano le due componenti alla comunicazione. Tali procedure sono alla base, ad esempio, del mwogTCP. Tuttavia possono anche esserci servizi che inviano direttamente i dati mwowsenza connessione e riscontri come nel caso dell'mwpaUDP.
La maggior parte delle applicazioni, tuttavia, ha bisogno di inviare i dati in maniera sicura e affidabile per cui l'handshake serve proprio a questo compito. Si comprende dunque come la mwpgconnessione attraverso TCP, ad esempio, sia piΓΉ sicura, ma anche piΓΉ lenta perchΓ© scambia non solo dati reali, ma anche dati di servizio.
Livello di servizio: code
Quando troppi client accedono ad un servizio, puΓ² succedere che la mwqgcoda di attesa diventi inaccettabile. In questo caso si parla di sovraffollamento. Il gestore deve prendere delle misure per cadenzare le richieste o per aumentare le risorse disponibili.
Il calcolo dei tempi di attesa e dei livelli di servizio Γ¨ oggetto di studi matematici e modellizzazioni informatiche, come la mwrateoria delle code.
La coda di richieste generati dai clienti puΓ² essere gonfiata artificialmente allo scopo di negare il servizio ai clienti che autenticamente lo richiedono. Questo succede nel caso di un attacco informatico di tipo mwrgmwrwDenial of Service (DOS) o Distributed Denial of Service (DDOS). In questi attacchi, il nemico crea, assolda o manipola in maniera irregolare un alto numero di client, a cui comanda una cadenza di richieste molto superiore a quello previsto dal servizio sotto attacco.
Il problema della gestione di una lunga coda di client si verifica anche in assenza di un attacco informatico vero e proprio, ad esempio, quando troppi utenti si collegano contemporaneamente con diversi browser alla stessa pagina web (cioè allo stesso server web). Questo si verifica quasi sempre, ad esempio, nei cosiddetti mwsqclick day, cioè quando una Pubblica Amministrazione offre un servizio ad un numero limitati di utenti a partire da un giorno e un orario prestabilito.
Esempi
Esempi di sistemi mwtaclient/server:
β’ mwtwWeb server: per la gestione dell'interazione via web tra mwuaserver e mwuqclient.
β’ mwuwFile server: per la condivisione dei mwvafile;
β’ mwwwDatabase server: per la gestione di grandi moli di mwxadati;
β’ mwxgGroupware: per la gestione d'mwxwinformazioni riguardanti gruppi di lavoro;
β’ mwyqPrint server: per la condivisione delle stampanti;
Implementazioni
Architettura di rete a livelli
Ciascun protocollo regola normalmente solo una parte degli aspetti di una comunicazione. I diversi protocolli sono organizzati con un sistema o mwzgarchitettura di rete detto "a livelli" dove in ciascun livello viene usato uno specifico protocollo.
La divisione in livelli Γ¨ fatta in modo che ciascun livello utilizzi i servizi offerti dal livello inferiore, e fornisca servizi piΓΉ "ricchi" al livello superiore. I diversi livelli in un host comunicano tra loro tramite le interfacce. Ogni livello parla solo con quello immediatamente superiore e con quello immediatamente inferiore. I protocolli regolano invece la comunicazione tra due entitΓ dello stesso livello, che serve a fornire servizi al livello superiore.
I vari livelli sono organizzati in pile di protocolli (mw0qstack protocollare). Le pile di protocolli sono un modo flessibile per combinare componenti per realizzare un servizio.
Un esempio reale di un'organizzazione a livelli protocollari, classico nelle trattazioni inerenti alle reti di calcolatori, è quello del percorso di una valigia in un viaggio aereo partendo dalla casa di origine all'hotel di destinazione. Il primo livello che notiamo è quello della preparazione della valigia: il turista prende i vestiti e ve li ripone per poi chiuderla, come ciò viene fatto è definito dal protocollo del primo livello 1º. Il livello 2º è quello dell'addetta alla valigie all'aeroporto di partenza, il turista gli consegna la valigia (passaggio dal primo al secondo livello) e l'addetta attacca alla valigia le informazioni relative al volo e alla destinazione. Qui notiamo l'aspetto fondamentale dell'organizzazione a livelli protocollari, cioè che per l'addetta non è necessario conoscere come i vestiti sono stati riposti nella valigia, altresì non è necessario per il turista conoscere le operazioni che deve effettuare l'addetta, infatti il turista otterrà quello che vuole (avere i vestiti all'hotel d'arrivo) senza che ciò influisca affatto come gli altri protocolli debbano lavorare, a patto che lo facciano correttamente.
La struttura serve ad adempiere ad alcuni compiti:
β’ mw1gcontrollo di errore;
β’ mw2acontrollo di flusso;
β’ frammentazione e riassemblaggio;
β’ mw2wmw3amultiplexing, in modo che mw3qsessioni dello strato piΓΉ alto possano condividere una singola mw3gconnessione dello strato piΓΉ basso;
β’ instaurazione della connessione.
Tale architettura presenta vantaggi concettuali e strutturali anche se alcuni si sono opposti in maniera decisa in quanto uno strato spesso duplica le funzionalitΓ di un altro strato in maniera ripetitiva.
Ad esempio, il servizio di mw4gADSL viene fornito con diverse modalitΓ , le piΓΉ comuni sono chiamate mw4wPPP over ATM (ovvero il protocollo Point to Point usa i servizi forniti dal protocollo ATM) e mw5aPPP over Ethernet.
Il livello piΓΉ basso Γ¨ detto "mw5glivello fisico" e si occupa di gestire la mw5wtrasmissione dei mw6asegnali attraverso il mw6qmezzo trasmissivo (mw6gcavo, mw6wfibra ottica, mw7ainfrarossi, ecc.). Il livello piΓΉ elevato Γ¨ chiamato "mw7qlivello applicativo" ed Γ¨ quello che permette all'utente di creare il messaggio da comunicare.
La divisione in livelli Γ¨ piuttosto rigida a livello di specifica dei protocolli, mentre nell'mw7wimplementazione spesso diversi livelli vengono implementati insieme in uno stesso modulo software.
Non Γ¨ detto che due macchine che comunicano usino la stessa pila di protocolli. Ad esempio, se vi connettete ad mw8qInternet attraverso un mw8gmodem voi appoggiate il livello di rete IP su una connessione PPP, mentre il mw8wserver a cui vi collegate probabilmente appoggia la rete IP su una connessione mw9aEthernet.
In una rete a pacchetto ciascun livello della "pila protocollare" aggiunge ai pacchetti un'intestazione, attraverso un'operazione detta imbustamento. Il termine si applica anche ad alcune reti a commutazione di circuito, come SDH, dove l'imbustamento Γ¨ un circuito dedicato a trasmettere informazioni di controllo.
Modello OSI e Modello TCP/IP
Lmw-q'mw-gInternational Organisation for Standardisation (mw-wISO) nel mw-a1979 ha rettificato lo mw-qstandard mw-gOpen Systems Interconnection (OSI), con l'intenzione di creare un mw-wmodello di riferimento per le telecomunicazioni da usare nelle reti di tutto il mondo. All'atto pratico però, lo mwaqastandard de facto che viene comunemente usato nella maggior parte delle reti, è il mwaqeTCP/IP, definito nella RFC 1155 da parte dell'mwaqmIETF. Le differenze fondamentali tra i due standard sono semplici: il primo è stato definito a tavolino da un'organizzazione super partes, mentre il secondo è opera di chi costruì materialmente le prime reti, sviluppandolo sul campo. Inoltre, lo standard ISO/OSI assegna un determinato compito ad ogni livello, mentre il mwaqqTCP/IP è più "elastico" e permette di sviluppare protocolli che svolgono più di un compito-base.
Sistema client/server in un sistema locale
Quasi tutti i mwaqcsistemi operativi utilizzano, per il funzionamento dei vari mwaqgprocessi, dei meccanismi basati sul modello client-server. Lo stesso mwaqkkernel si comporta come server quando gestisce le chiamate alle mwaqoprimitive di sistema da parte dei processi in esecuzione.
PiΓΉ in generale in un sistema operativo, per alcuni tipi di servizi, sono espressamente previsti dei mwaqwprocessi server, gli unici in grado di eseguire una certa operazione. Spesso questi processi hanno accesso esclusivo a una risorsa e devono, appunto, mwaq0servire le richieste dei processi client.
Ad esempio, nei sistemi mwaq8Windows Γ¨ presente uno mwaraspooler, unico processo in tutto il sistema a poter utilizzare la mwarestampante. Per poter stampare, un processo non deve interfacciarsi con il driver della stampante (ed eseguire la sequenza del mwaridriver virtualizzato mwarmacquisizione-uso-rilascio) ma deve inviare i propri dati, attraverso i servizi offerti dal sistema, al processo spooler, il quale, tra l'altro, effettua lo mwarqscheduling dei documenti da stampare. Una volta inviati i dati allo spooler, il processo saprΓ non che la stampa Γ¨ stata eseguita, ma che lo sarΓ certamente (a meno di intoppi). Avendo accesso esclusivo a tutte le stampanti di sistema, il driver della stampante non prevede procedure di acquisizione e rilascio.
Note
cite-note-11. β mwars(mwarwmwar0EN) mwar4mwar8Client/Server Definition, su mwasalinfo.org, 26 novembre 2005. mwaseURL consultato il 13 maggio 2012.
cite-note-22. β mwasu(mwasymwascEN) Bradley Mitchell, mwasgmwaskIntroduction to Client Server Networks, su mwasocompnetworking.about.com, about.com. mwassURL consultato il 13 maggio 2012 mwasw(archiviato dall'mwas0url originale il 25 aprile 2012).
cite-note-33. β mwatemwatijava.sun.com, mwatmhttps://web.archive.org/web/20110406121920/http://java.sun.com/developer/Books/jdbc/ch07.pdfmwatq Titolo mancante per url mwatuurlarchivio (aiuto). mwatcURL consultato il 4 aprile 2022 mwatg(archiviato dall'mwatkurl originale il 6 aprile 2011).
Voci correlate
β’ mwat4Dominio (informatica)
β’ mwauaRete di computer
β’ mwauiClient
β’ mwauqServer
β’ mwauyPeer-to-peer
β’ mwaugCoda (informatica)
Altri progetti
Altri progetti
β’ Wikimedia Commons
β’ Wikimedia Commons contiene immagini o altri file sul sistema client-server
Collegamenti esterni
β’ citerefsapere-itclient-server, su sapere.it, De Agostini.
⒠citerefbritannica-com(EN) client-server architecture, su Enciclopedia Britannica, Encyclopædia Britannica, Inc.
β’ citerefopen-library(EN) Opere riguardanti Client/server computing, su Open Library, Internet Archive.
β’ citereffoldoc(EN) Denis Howe, client-server, in Free On-line Dictionary of Computing. Disponibile con licenza mwau8GFDL